from pandas_vlookup.excel_reader import ExcelReader
import pandas as pd

def read_large_excel_example():
    """读取大型Excel文件示例"""

    # 创建读取器实例
    reader = ExcelReader(chunk_size=100000)

    # 基本读取
    df = reader.read_excel_chunks(
        'large_file.xlsx',
        usecols=['A', 'B', 'C'],  # 只读取需要的列
        dtype={
            'A': 'int32',
            'B': 'category',
            'C': 'float32'
        }
    )

    print(f"原始内存使用: {reader.get_memory_usage(df)}")

    # 优化数据类型
    df_optimized = reader.optimize_dtypes(df)
    print(f"优化后内存使用: {reader.get_memory_usage(df_optimized)}")

    # 使用dask处理超大文件
    ddf = reader.read_excel_dask('very_large_file.xlsx')
    result = ddf.compute()  # 执行计算

    # 使用modin并行处理
    mdf = reader.read_excel_modin('large_file.xlsx')

if __name__ == '__main__':
    read_large_excel_example()
